package com.crm.model.crm.clue.dtos;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
 * 线索页面默认与条件搜索
 */
@Builder
@Data
public class ClueSearchDto {
    private Integer page; //分页
    private Integer pageSize; //分页条数
    private String clueIdName; // 线索名
    private String phoneNumber; // 手机号
    private String cluBelongerName; // 线索归属：归属员工名
    private String createTimeSrting; // 创建日期字串符 todo:jsonFormat 注解无法使用
    private Long cueStatus; // 线索状态 例如：0 待跟进，1 待分配  2 跟进中 为 byte
    private Long channelSource; //渠道来源 例如 ：0 线上活动 ,1 推荐介绍 为 byte

    // 当天开始时间
    public LocalDateTime getStarOfDay(){
        if (this.createTimeSrting == null) {
            return null; // 或者根据需求返回合适的默认值
        }
        return getCreateTime().atStartOfDay();
    }

    // 当天结束时间
    public LocalDateTime getEndOfDay(){
        if (this.createTimeSrting == null) {
            return null; // 或者根据需求返回合适的默认值
        }
        return LocalDateTime.of(getCreateTime(), LocalTime.MAX);
    }

    // 字符串日期的解析方法
    public LocalDate getCreateTime(){
        return getLocalDate(this.createTimeSrting);
    }

    private LocalDate getLocalDate (String createTimeString){
        return LocalDate.parse(createTimeString, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    }

    public void pageAndPageSizeNotNull(){
        if (this.page == null || this.page < -1){
            this.page = 0;
        }
        if (this.pageSize == null || this.page < -1){
            this.pageSize = 10;
        }
    }


}
